﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Wedn.DAL;
using Wedn.Model.Data;

namespace Wedn.BLL.Data
{
    /// <summary>
    /// 用户管理抽象类不可被实例化(初步审核通过)
    /// </summary>
    public class UsersManager
    {
        #region 添加用户
        /// <summary>
        /// 添加一个新的用户, 返回执行是否成功
        /// </summary>
        /// <param name="user">要添加的用户对象</param>
        /// <returns>执行是否成功</returns>
        public static bool Insert(User user)
        {
            return UsersDAO.Insert(user) > 0;
        }
        #endregion

        #region 删除用户

        #region 删除一条
        /// <summary>
        /// 根据用户ID删除数据库用户表中的用户对象, 返回执行是否成功
        /// </summary>
        /// <param name="userid">要删除的用户ID</param>
        /// <returns>执行是否成功</returns>
        public static bool Delete(int userid)
        {
            return UsersDAO.Delete(userid) > 0;
        }
        #endregion

        #region 删除多条
        /// <summary>
        /// 根据用户ID数组删除数据库用户表中的用户对象, 返回执行是否成功
        /// </summary>
        /// <param name="userids">要删除的用户ID数组"</param>
        /// <returns>执行是否成功</returns>
        public static bool Delete(int[] userids)
        {
            string ids = string.Join(",", userids);
            return UsersDAO.Delete(ids) == userids.Length;
        }
        #endregion

        #endregion

        #region 更新用户
        /// <summary>
        /// 根据用户对象的ID属性更新用户信息, 返回执行是否成功
        /// </summary>
        /// <param name="user">要更新的用户对象</param>
        /// <returns>执行是否成功</returns>
        public static bool Update(User user)
        {
            return UsersDAO.Update(user) > 0;
        }
        #endregion

        #region 选取用户

        #region 获取表中主键最大值
        /// <summary>
        /// 获取表中主键最大值
        /// </summary>
        /// <returns>主键最大值</returns>
        public static int GetMaxId()
        {
            return UsersDAO.GetMaxId();
        }
        #endregion

        #region 检查用户名是否存在
        /// <summary>
        /// 判断用户名是否存在,如果存在则返回TRUE,否则返回FALSE
        /// </summary>
        /// <param name="userName">要判断的用户名</param>
        /// <returns>存在则返回TRUE,否则返回FALSE</returns>
        public static bool Exists(string userName)
        {
            return UsersDAO.Exists(userName);
        }
        #endregion

        #region 获取用户密码
        /// <summary>
        /// 获取用户密码字符串,存在返回密码,如果不存在则返回null;
        /// </summary>
        /// <param name="userName">要查询的用户名</param>
        /// <returns>查询到的密码</returns>
        public static string GetPassword(string userName)
        {
            return UsersDAO.SelectPassword(userName);
        }
        #endregion

        #region 获取所有用户信息
        /// <summary>
        /// 获取用户信息表中所有用户信息, 返回对象集合
        /// </summary>
        /// <returns>所有用户信息集合</returns>
        public static List<User> GetUsers()
        {
            return UsersDAO.SelectUsers();
        }
        #endregion

        #region 根据用户ID获取所有用户对象
        /// <summary>
        /// 根据用户ID获取用户信息表中用户信息对象, 返回用户信息对象
        /// </summary>
        /// <returns>用户信息对象</returns>
        public static User GetUser(int userid)
        {
            return UsersDAO.SelectUser(userid);
        }
        #endregion

        #endregion
    }
}
